package services;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.faces.bean.ApplicationScoped;
import javax.faces.bean.ManagedBean;

import modelo.Combobebidaxpresupuesto;
import modelo.Combobebidaxsalon;
import modelo.Importepresupuesto;
import modelo.Interesado;
import modelo.Menuxpresupuesto;
import modelo.Presupuesto;
import modelo.Salon;
import modelo.Servicioadicionalxpresupuesto;
import modelo.Servicioadicionalxsalon;
import dao.PresupuestoDao;


@ManagedBean(name = "presupuestoService", eager = true)
@ApplicationScoped
public class PresupuestoService implements Serializable{
	
	private static final long serialVersionUID = -747951228510313904L;
	
	private Presupuesto presupuesto;
	private List<Presupuesto> listaPresupuesto;
	private List<Presupuesto> listPresupuestoSalon;
	private PresupuestoDao presupuestoDao;
	
	
	public PresupuestoService() {
		super();
		this.presupuesto = new Presupuesto();
		this.listaPresupuesto = new ArrayList<Presupuesto>();
		this.presupuestoDao = new PresupuestoDao();
		
	}
	
	
	@PostConstruct
	public void init(){
		listaPresupuesto =  presupuestoDao.obtenerPresupuestos();
	}
	
	public Presupuesto getPresupuesto() {
		return presupuesto;
	}

	public Presupuesto getPresupuestoSeleccionado(int p) {
		return presupuestoDao.getPresupuestoSeleccionado(p);
	}
	
	
	public void setPresupuesto(Presupuesto presupuesto) {
		this.presupuesto = presupuesto;
	}
	
	public List<Presupuesto> getListaPresupuesto() {
		return listaPresupuesto;
	}
	
	public void setListaPresupuesto(List<Presupuesto> listaPresupuesto) {
		this.listaPresupuesto = listaPresupuesto;
	}
	
	public PresupuestoDao getPresupuestoDao() {
		return presupuestoDao;
	}
	
	public void setPresupuestoDao(PresupuestoDao presupuestoDao) {
		this.presupuestoDao = presupuestoDao;
	}


	public Integer guardarPresup(Presupuesto presupuesto2,
			Interesado interesadoSelected,
			List<Menuxpresupuesto> listMenuSeleccionados,
			List<Combobebidaxsalon> listComboBebidaXSalonSeleccionadas,
			List<Servicioadicionalxsalon> listServicioXSalonSeleccionadas,
			List<Importepresupuesto> listImporteFijoSeleccionados) {

		return presupuestoDao.guardarPresup(presupuesto2,interesadoSelected,listMenuSeleccionados,listComboBebidaXSalonSeleccionadas,
				listServicioXSalonSeleccionadas,listImporteFijoSeleccionados);
		
	}


	public List<Menuxpresupuesto> getListaMenuxPresupuesto(int i) {
		return presupuestoDao.getListaMenuxpresup(i);
	}


	public List<Combobebidaxpresupuesto> getListaComboBebidaxPresupuesto(int i) {
		return presupuestoDao.getListaComboBebidaxPresupuesto(i);
	}


	public Combobebidaxsalon getComboBebidaxSalon(Combobebidaxpresupuesto m) {
		return presupuestoDao.getComboBebidaxSalon(m);
	}


	public List<Servicioadicionalxpresupuesto> getListaServiciosxPresupuesto(int i) {
		return presupuestoDao.getListaServiciosxPresupuesto(i);
	}


	public Servicioadicionalxsalon getServAdicionalxSalon(
			Servicioadicionalxpresupuesto m, int idPresupuesto) {
		return presupuestoDao.getServicioAdicionalxSalon(m,idPresupuesto);
	}


	public List<Importepresupuesto> getListaImportesxPresupuesto(int i) {
		return presupuestoDao.getImportePresupuesto(i);
	}


	public List<Presupuesto> getListPresupuestoSalon() {
		listPresupuestoSalon=presupuestoDao.obtenerPresupuestosPendientes();
		return listPresupuestoSalon;
	}


	public void setListPresupuestoSalon(List<Presupuesto> listPresupuestoSalon) {
		this.listPresupuestoSalon = listPresupuestoSalon;
	}


	public Presupuesto obtenerPresupuesto(Integer presuSel) {
		Presupuesto s = new Presupuesto();
		s=presupuestoDao.obtenerPresupuesto(presuSel);
		return s;
	}


	
	
	

}
